<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:c="http://java.sun.com/jsp/jstl/core">

    <body>
        <ui:composition template="./../../WEB-INF/templates/MainTemplate.xhtml">
            <ui:define name="bar">
                <h:form id="barForm">
                    <p:commandButton styleClass="actionButton" id="filtrarButton" value="#{messages.Filtrar}" onclick="dialogoFiltrar.show();"></p:commandButton>
                </h:form>
            </ui:define>

            <ui:define name="dialogs">
                <h:form id="dialogoForm">
                <p:dialog modal="true" id="dialogoFiltrar" widgetVar="dialogoFiltrar"  header="#{messages.Filtrar}">
                        <h:panelGrid columns="4">
                            <p:outputLabel for="d" value="#{messages.D}"></p:outputLabel>
                            <p:selectOneMenu converter="#{dConverter}" id="d" value="#{editarPedidoBean.filtradoDataModel.DFiltrado}" label="#{messages.D}">
                                <f:selectItem itemLabel="#{messages.SeleccionaD}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ds}" var="d" itemLabel="#{d.descripcion}" itemValue="#{d}"></f:selectItems>
                            </p:selectOneMenu>

                            <p:outputLabel for="c" value="#{messages.C}"></p:outputLabel>
                            <p:selectOneMenu converter="#{cConverter}" id="c" value="#{editarPedidoBean.filtradoDataModel.CFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaC}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.cs}" var="c" itemLabel="#{c.descripcion}" itemValue="#{c}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="s" value="#{messages.S}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sConverter}" id="s" value="#{editarPedidoBean.filtradoDataModel.SFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaS}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.ss}" var="s" itemLabel="#{s.descripcion}" itemValue="#{s}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="temporada" value="#{messages.Temporada}"></p:outputLabel>
                            <p:selectOneMenu converter="#{temporadaConverter}" id="temporada" value="#{editarPedidoBean.filtradoDataModel.temporadaFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaTemporada}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.temporadas}" var="temporada" itemLabel="#{temporada.descripcion}" itemValue="#{temporada}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="serieTallaje" value="#{messages.SerieTallaje}"></p:outputLabel>
                            <p:selectOneMenu converter="#{serieTallajeConverter}" id="serieTallaje" value="#{editarPedidoBean.filtradoDataModel.serieTallajeFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSerieTallaje}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.seriesTallaje}" var="serieTallaje" itemLabel="#{serieTallaje.descripcion}" itemValue="#{serieTallaje}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="sexo" value="#{messages.Sexo}"></p:outputLabel>
                            <p:selectOneMenu converter="#{sexoConverter}" id="sexo" value="#{editarPedidoBean.filtradoDataModel.sexoFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaSexo}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.sexos}" var="sexo" itemLabel="#{sexo.descripcion}" itemValue="#{sexo}"/>  
                            </p:selectOneMenu>

                            <p:outputLabel for="proveedor" value="#{messages.Proveedor}"></p:outputLabel>
                            <p:selectOneMenu converter="#{proveedorConverter}" id="proveedor" value="#{editarPedidoBean.filtradoDataModel.proveedorFiltrado}" effect="fade">  
                                <f:selectItem itemLabel="#{messages.SeleccionaProveedor}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.proveedores}" var="proveedor" itemLabel="#{proveedor.nombreComercial}" itemValue="#{proveedor}"/>  
                            </p:selectOneMenu>

                        </h:panelGrid>
                    <p:commandButton process="@parent" update=":editarPedidoForm" value="#{messages.Filtrar}" actionListener="#{editarPedidoBean.filtrar()}" oncomplete="dialogoFiltrar.hide()"></p:commandButton>
                    </p:dialog>
                   
                </h:form>
            </ui:define>
            <ui:define name="content">
                <h:form id="editarPedidoForm">
                    <p:growl autoUpdate="true" life="4000" id="editarPedidoGrowl"></p:growl>
                    <p:panel styleClass="noMargin noPadding noBorder" id="editarDatosPedidoPanel">
                    <h:panelGrid columns="8">
                            <p:outputLabel for="editarCliente" value="#{messages.Cliente}"></p:outputLabel>
                            <p:selectOneMenu converter="#{clienteConverter}" id="editarCliente" required="true" value="#{editarPedidoBean.pedido.cliente}" label="#{messages.Cliente}">
                                <f:selectItem itemLabel="#{messages.SeleccionaCliente}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.clientes}" var="cliente" itemLabel="#{cliente.nombre}" itemValue="#{cliente}"></f:selectItems>
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="editarFormaPago" value="#{messages.FormaPago}"></p:outputLabel>
                            <p:selectOneMenu converter="#{formaPagoConverter}" id="editarFormaPago" required="true" value="#{editarPedidoBean.pedido.formaPago}" label="#{messages.FormaPago}">
                                <f:selectItem itemLabel="#{messages.SeleccionaFormaPago}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.formasPago}" var="formaPago" itemLabel="#{formaPago.descripcion}" itemValue="#{formaPago}"></f:selectItems>
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="editarResto" value="#{messages.Resto}"></p:outputLabel>
                            <p:selectOneMenu converter="#{restoConverter}" id="editarResto" required="true" value="#{editarPedidoBean.pedido.resto}" label="#{messages.Resto}">
                                <f:selectItem itemLabel="#{messages.SeleccionaResto}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.restos}" var="resto" itemLabel="#{resto.descripcion}" itemValue="#{resto}"></f:selectItems>
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="editarEstado" value="#{messages.Estado}"></p:outputLabel>
                            <p:selectOneMenu converter="#{estadoPedidoConverter}" id="editarEstado" required="true" value="#{editarPedidoBean.pedido.estado}" label="#{messages.Estado}">
                                <f:selectItem itemLabel="#{messages.SeleccionaEstado}" itemValue="" />  
                                <f:selectItems value="#{resourcesBean.estadosPedido}" var="estadoPedido" itemLabel="#{estadoPedido.descripcion}" itemValue="#{estadoPedido}"></f:selectItems>
                            </p:selectOneMenu>
                            
                            <p:outputLabel for="editarDescuento" value="#{messages.Descuento}"></p:outputLabel>
                            <p:inputText id="editarDescuento" value="#{editarPedidoBean.pedido.descuento}"></p:inputText>
                            
                            <p:outputLabel for="editarAdelanto" value="#{messages.Adelanto}"></p:outputLabel>
                            <p:inputText required="true" id="editarAdelanto" value="#{editarPedidoBean.pedido.adelanto}"></p:inputText>

                            <p:outputLabel for="editarFechaEntrega" value="#{messages.FechaEntrega}"></p:outputLabel>
                            <p:calendar locale="es" showButtonPanel="true" navigator="true" value="#{editarPedidoBean.pedido.fechaEntrega}" id="editarFechaEntrega"/>
                            
                            <p:outputLabel for="editarFechaFinEntrega" value="#{messages.FechaFinEntrega}"></p:outputLabel>
                            <p:calendar locale="es" showButtonPanel="true" navigator="true" value="#{editarPedidoBean.pedido.fechaFinEntrega}" id="editarFechaFinEntrega"/>

                            <p:outputLabel for="editarContacto" value="#{messages.Contacto}"></p:outputLabel>
                            <p:inputText id="editarContacto" value="#{editarPedidoBean.pedido.contacto}"></p:inputText>
                            
                            <p:outputLabel for="editarACuenta" value="#{messages.ACuenta}"></p:outputLabel>
                            <p:inputText id="editarACuenta" value="#{editarPedidoBean.pedido.entregadoACuenta}"></p:inputText>

                            <p:outputLabel for="editarPorte" value="#{messages.Porte}"></p:outputLabel>
                            <p:inputText id="editarPorte" value="#{editarPedidoBean.pedido.precioPorte}"></p:inputText>
                            
                            <p:outputLabel for="editarComentarios" value="#{messages.Comentarios}"></p:outputLabel>
                            <p:inputTextarea id="editarComentarios" value="#{editarPedidoBean.pedido.comentarios}"></p:inputTextarea>
                        </h:panelGrid>
                        <p:commandButton update=":editarPedidoForm:editarPedidoGrowl" value="#{messages.Editar}" actionListener="#{editarPedidoBean.editar()}"></p:commandButton>
                    </p:panel>
                    <p:panel styleClass="noMargin noPadding noBorder" id="panelProductosElegidos">                        
                        <f:facet name="header">
                            #{messages.ProductosPedido}
                        </f:facet>
                        <c:forEach items="#{editarPedidoBean.tablaPedidoDataModel.CDePedido}" var="c">
                            <p:panel styleClass="noMargin noPadding noBorder">
                                <f:facet name="header" >
                                    #{c.descripcion}
                                </f:facet>
                                
                                <c:forEach items="#{editarPedidoBean.tablaPedidoDataModel.getSeriesTallajeDePedidoYC(c)}" var="serieTallaje">
                                    <p:panel styleClass="noMargin noPadding noBorder">
            
                                        <p:dataTable styleClass="noMargin noPadding noBorder" var="producto" value="#{editarPedidoBean.tablaPedidoDataModel.getTodosProductosDePedidoSerieTallajeYC(c, serieTallaje)}">
                                            <p:column style="width:200px;" headerText="#{messages.Producto}">#{producto.descripcion}</p:column>
                                            <p:column style="width:120px;" headerText="#{messages.Color}">#{producto.color}</p:column>
                                            <p:column style="width:120px;" headerText="#{messages.Pvp} #{editarPedidoBean.pedido.cliente.pais.descripcion}">
                                                <h:outputText rendered="#{editarPedidoBean.pedido.cliente.pais.descripcion=='Spain'}" value="#{producto.pvp}"></h:outputText>
                                                <h:outputText rendered="#{editarPedidoBean.pedido.cliente.pais.descripcion!='Spain'}" value="#{productosPVPBean.recuperarPvpDeProductoYPais(producto, editarPedidoBean.pedido.cliente.pais)}"></h:outputText>
                                            </p:column>
                                            <p:column style="width:120px;" headerText="#{messages.Coste}">
                                                <h:outputText rendered="#{editarPedidoBean.pedido.cliente.pais.descripcion=='Spain'}" value="#{producto.pvp.doubleValue()/multiplicadoresBean.recuperarMultiplicadorDeProductoYPedido(producto, editarPedidoBean.pedido).doubleValue()}">
                                                    <f:convertNumber maxFractionDigits="2" minFractionDigits="2"></f:convertNumber>
                                                </h:outputText>
                                                <h:outputText rendered="#{editarPedidoBean.pedido.cliente.pais.descripcion!='Spain'}" value="#{productosPVPBean.recuperarPvpDeProductoYPais(producto, editarPedidoBean.pedido.cliente.pais).doubleValue()/multiplicadoresBean.recuperarMultiplicadorDeProductoYPedido(producto, editarPedidoBean.pedido).doubleValue()}">
                                                    <f:convertNumber maxFractionDigits="2" minFractionDigits="2"></f:convertNumber>
                                                </h:outputText>
                                            </p:column>
                                            <p:column style="width:50px" headerText="#{messages.Multiplicador}">
                                                <p:inputText styleClass="pedidoInput" rendered="#{multiplicadoresProductoYPedidoBean.recuperarMultiplicadorEdicion(producto)!=null}" value="#{multiplicadoresProductoYPedidoBean.recuperarMultiplicadorEdicion(producto).multiplicador}">
                                                    <f:convertNumber maxFractionDigits="2" minFractionDigits="2"></f:convertNumber>
                                                    <p:ajax update=":editarPedidoForm:panelProductosElegidos" listener="#{multiplicadoresProductoYPedidoBean.editarMultiplicador(producto)}"></p:ajax>
                                                </p:inputText>
                                            </p:column>
                                            <p:columns styleClass="center pedidoInput" columnIndexVar="index" value="#{serieTallaje.tallaSerieTallajeList}" var="tallaSerieTallaje" headerText="#{tallaSerieTallaje.talla.descripcion}">
                                                <p:inputText styleClass="pedidoInput" rendered="#{editarPedidoBean.recuperarLineaPedidoDeProductoTalla(producto, serieTallaje.getTallaSerieTallajeList()[index].talla)!=null}" value="#{editarPedidoBean.recuperarLineaPedidoDeProductoTalla(producto, serieTallaje.getTallaSerieTallajeList()[index].talla).cantidad}">
                                                    <p:ajax event="change" update=":editarPedidoForm:panelProductosElegidos" process=":editarPedidoForm:panelProductosElegidos" listener="#{editarPedidoBean.editarProductoGuardado(producto, serieTallaje.getTallaSerieTallajeList()[index].talla)}"></p:ajax>
                                                </p:inputText>
                                            </p:columns>
                                        </p:dataTable>
                                    </p:panel>
                                </c:forEach>
                                <f:facet name="header">  
                                    Unidades #{c.descripcion}: #{editarPedidoBean.tablaPedidoDataModel.consultarUnidadesDePedidoDeC(c)} | Subtotal #{c.descripcion}: #{editarPedidoBean.tablaPedidoDataModel.consultarTotalDePedidoDeC(c)} #{editarPedidoBean.pedido.cliente.paisFiscal.signoMoneda}
                                </f:facet>
                            </p:panel>
                        </c:forEach>
                        <f:facet name="header">  
                            Unidades: #{editarPedidoBean.pedido.unidades} | Total: #{listadoPedidosBean.getTotal(editarPedidoBean.pedido)} #{editarPedidoBean.pedido.cliente.paisFiscal.signoMoneda}
                        </f:facet>
                        
                    </p:panel>
                    <p:panel rendered="#{editarPedidoBean.lineasPedido!=null}" styleClass="noMargin noPadding noBorder panelProcesar" id="render">
                        <f:facet name="header">
                            #{messages.AddProducts}
                        </f:facet>
                        <c:forEach items="#{editarPedidoBean.tablaPedidoDataModel.CDeDataModel}" var="c">
                            <p:panel styleClass="noMargin noPadding noBorder">
                                <f:facet name="header" >
                                    #{c.descripcion}
                                </f:facet>
                                
                                <c:forEach varStatus="indexForEach" items="#{editarPedidoBean.tablaPedidoDataModel.getSeriesTallajeDeC(c)}" var="serieTallaje">
                                    <p:panel styleClass="noMargin noPadding noBorder">
                                        <p:dataTable rowKey="#{producto.idProducto}" styleClass="noMargin noPadding noBorder processing" var="producto" value="#{editarPedidoBean.tablaPedidoDataModel.getTodosProductosDeSerieTallajeYC(c, serieTallaje)}">
                                            <p:column style="width:200px;" headerText="Producto">#{producto.descripcion}</p:column>
                                            <p:column style="width:120px;" headerText="Color">#{producto.color}</p:column>
                                            <p:columns styleClass="center" value="#{serieTallaje.tallaSerieTallajeList}" var="tallaSerieTallaje" headerText="#{tallaSerieTallaje.talla.descripcion}">
                                                <p:inputText styleClass="pedidoInput" rendered="#{editarPedidoBean.recuperarLineaPedidoDeProductoTallaVacia(producto, tallaSerieTallaje.talla)!=null}" value="#{editarPedidoBean.recuperarLineaPedidoDeProductoTallaVacia(producto, tallaSerieTallaje.talla).cantidad}">
                                                </p:inputText>
                                            </p:columns>
                                        </p:dataTable>
                                    </p:panel>
                                </c:forEach>
                            </p:panel>
                        </c:forEach>
                        <p:commandButton value="#{messages.Add}" actionListener="#{editarPedidoBean.addProductos()}" id="botonAddProductos" process="@parent" update=":editarPedidoForm"></p:commandButton>
                        <p:commandButton value="#{messages.Desechar}" update=":editarPedidoForm">
                            <f:setPropertyActionListener target="#{editarPedidoBean.lineasPedido}" value="#{null}"></f:setPropertyActionListener>
                        </p:commandButton>
                    </p:panel>
                </h:form>
            </ui:define>

        </ui:composition>

    </body>
</html>
